package edu.scau.mis.pos.service;

import edu.scau.mis.pos.domain.Payment;
import java.util.List;
import java.util.Map;

/**
 * (Payment)表服务接口
 *
 * @author CJW
 * @since 2024-04-17 23:51:46
 */
public interface IPaymentService {

    /**
     * 通过ID查询单条数据
     *
     * @param paymentId 主键
     * @return 实例对象
     */
    Payment selectById(Long paymentId);

    /**
     * 查询指定行数据
     *
     * @param payment 筛选条件
     * @return 查询结果
     */
    List<Payment> selectList(Payment payment);

    /**
     * 新增数据
     *
     * @param payment 实例对象
     * @return 实例对象
     */
    Payment insert(Payment payment);

    /**
     * 修改数据
     *
     * @param payment 实例对象
     * @return 实例对象
     */
    Payment update(Payment payment);

    /**
     * 通过主键批量删除数据
     *
     * @param paymentId 主键
     * @return 影响记录数
     */
    int deleteByIds(Long paymentId);


    /**
     * 创建payment,使用雪花算法自动生成payment_no
     *
     * @param payment 实例对象
     * @return
     */
    int createPayment(Payment payment);

    /**
     * 按月份统计销售额，并且可以按年份筛选数据
     */
    List<Map<String, Object>> getSalesByMonthAndYear(int year);

    /**
     * 按发型师统计业绩金额，可以按时间筛选数据
     */
    List<Map<String, Object>> getStylistPerformanceByTimeUnit(String timeUnit, String searchTime);
}
